大多數(shù)現(xiàn)代應(yīng)用程序都依賴第三方組件和依賴項來運行。雖然這種開源代碼有其優(yōu)勢,但它也可能將漏洞、惡意代碼和其他安全風險引入應(yīng)用程序。軟件組合分析 (SCA) 是一種用于識別這些外部代碼片段的DevSecOps工具。SCA 可用于跟蹤開源組件、查找漏洞和管理軟件許可證。
軟件組成分析解決方案的工作原理
SCA 解決方案旨在檢查未知代碼庫并記錄所使用的開源組件、它們的漏洞和其他信息。這可以通過以下步驟完成:
- 掃描: SCA 工具將從掃描代碼庫開始,以識別代碼使用的庫和依賴項。基于此掃描,該工具可以生成軟件物料清單 (SBOM),其中列出了應(yīng)用程序使用的所有開源代碼。
- 文檔:軟件版本、許可信息和應(yīng)用程序的使用情況都是有價值的信息。在代碼庫中識別開源代碼后,SCA 掃描器將記錄此數(shù)據(jù)。
- 漏洞檢測:已知漏洞與受影響的軟件和版本一起記錄為常見漏洞和暴露 (CVE)。通過了解所使用的開源庫及其版本號,SCA 工具可以識別應(yīng)用程序中的已知漏洞。
在此過程結(jié)束時,SCA 工具生成了一份報告,其中包含有關(guān)應(yīng)用程序使用的所有開源依賴項的信息。此信息可能會報告給安全人員,或者,根據(jù)調(diào)查結(jié)果和CI/CD 管道中的集成級別,如果新提交使用已棄用或不安全的組件,甚至可能會阻止將新提交添加到代碼庫中。通過將 SCA 集成到 CI/CD 管道中,開發(fā)團隊可以將安全性轉(zhuǎn)移到左側(cè)并降低可利用漏洞到達生產(chǎn)系統(tǒng)的風險。
為什么重要
供應(yīng)鏈攻擊已成為對應(yīng)用程序安全的日益嚴重的威脅。許多應(yīng)用程序依賴于包含易受攻擊代碼的開源組件。網(wǎng)絡(luò)犯罪分子還積極致力于開發(fā)庫或?qū)阂獯a注入合法庫以破壞應(yīng)用程序安全。SCA 使組織能夠了解其應(yīng)用程序所依賴的第三方代碼。這種可見性對于識別繼承漏洞和使用開源和第三方代碼可能引起的其他問題至關(guān)重要。
軟件組成分析 (SCA) 用例
SCA 提供對組織應(yīng)用程序使用的開源依賴項的可見性。這種可見性對于漏洞和許可證管理至關(guān)重要。
漏洞管理
開源庫可能包含可利用的漏洞或惡意代碼。如果應(yīng)用程序?qū)脒@些庫,則可能容易受到利用或執(zhí)行惡意代碼。通常,公司很難保持對其使用的第三方代碼的可見性。對于一個開源組件導入一個或多個其他組件的間接依賴關(guān)系尤其如此。SCA 解決方案可以幫助公司獲得所需的可見性,并快速確定應(yīng)用程序使用的庫版本是否存在 CVE。
許可證管理
使用第三方代碼可能會給組織帶來許可問題,尤其是在存在廣泛的潛在許可要求的情況下。在一種極端情況下,版權(quán)可能使公司無法使用組件或可能需要支付版稅。另一方面,copyleft 許可證可以強制要求任何使用特定組件的代碼也必須是免費可用和開源的。
如果不了解其應(yīng)用程序使用的開源組件,組織就會對許可規(guī)則一無所知,并可能處于法律危險之中。通過收集代碼庫中使用的所有開源組件的許可信息,公司可以了解潛在的許可和法律問題。
SCA 如何幫助防止供應(yīng)鏈攻擊
越來越多的網(wǎng)絡(luò)威脅參與者正在執(zhí)行供應(yīng)鏈攻擊,其中漏洞或惡意代碼被注入到其他應(yīng)用程序使用的開源項目中。導入庫的軟件將執(zhí)行惡意代碼或繼承漏洞,使它們?nèi)菀妆焕谩?/p>
SCA 可以通過識別應(yīng)用程序依賴項中的漏洞來幫助防止供應(yīng)鏈攻擊。此外,深入了解應(yīng)用程序使用的依賴關(guān)系有助于識別網(wǎng)絡(luò)犯罪分子為這些攻擊創(chuàng)建或破壞的已知不良庫。
軟件組成分析 (SCA) 挑戰(zhàn)
SCA 對于管理組織的軟件供應(yīng)鏈安全風險至關(guān)重要。然而,SCA 面臨挑戰(zhàn),包括:
- 間接依賴:一個應(yīng)用程序的依賴可能有它們自己的依賴。這些鏈條可能深入多個層次,因此難以實現(xiàn)完全可見性。
- 依賴關(guān)系識別:不同的編程語言和生態(tài)系統(tǒng)以不同方式處理依賴關(guān)系。SCA 解決方案必須了解將開源代碼導入應(yīng)用程序的所有方式。
- 漏洞管理:每天都會發(fā)現(xiàn)新的漏洞,漏洞管理的來源并不總是最新的。因此,SCA 可能會遺漏漏洞,而開發(fā)團隊可能難以跟上積壓工作。